package com.wdemo.service;

import com.wdemo.pojo.vo.ChatPdfVo;
import org.springframework.core.io.Resource;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;
import reactor.core.publisher.Flux;

import java.io.IOException;

/**
 * @ClassName ChatPdfService
 * @Description 聊天pdf服务
 * @Author WDEMO
 * @Date 2025/9/2 2:19
 */
public interface ChatPdfService {

    /**
     * 上传文件
     * @param file 上传的文件
     * @param chatId 会话Id
     * @return
     */
    public ChatPdfVo uploadPdf( MultipartFile file,  String chatId) throws IOException;

    /**
     * 从Aliyun上传文件
     * @param file 上传的文件
     * @param chatId 会话Id
     * @return
     */
    public ChatPdfVo uploadPdfToAliyun( MultipartFile file,  String chatId) throws IOException;

    /**
     * 本地下载文件
     * @param chatId 会话Id
     * @return
     */
    ResponseEntity<Resource> downloadPdf(String chatId);
    /**
     * 从Aliyun下载文件
     * @param chatId 会话Id
     * @return
     */
    ResponseEntity<Resource> downloadPdfByAliyun(String chatId);

    /**
     * 基于pdf知识库聊天
     * @param prompt 问题
     * @param chatId 会话Id
     * @return
     */
    Flux<String> chat(String prompt, String chatId);
}
